package com.ssy.lingxi.marketing.model.bo;

import com.ssy.lingxi.marketing.handler.convert.JpaJsonToActivityDefinedBOConverter;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Convert;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 活动商品BO
 * @author yzc
 * @version 2.0.0
 * @date 2021/9/1
 */
@Getter
@Setter
public class ActivityGoodsBO implements Serializable {

    private static final long serialVersionUID = -2276489362703034192L;

    /**
     * ID
     */
    private Long id;

    /**
     * 所属类型 1-平台 2-商家
     */
    private Integer belongType;

    /**
     * 活动id
     */
    private Long activityId;
    /**
     * 活动名称
     */
    private String activityName;

    /**
     * 活动类型
     */
    private Integer activityType;

    /**
     * 活动开始时间
     */
    private Long startTime;

    /**
     * 活动结束时间
     */
    private Long endTime;

    /**
     * 活动定义
     */
    @Convert(converter = JpaJsonToActivityDefinedBOConverter.class)
    private ActivityDefinedBO activityDefined;

    /**
     * 会员id
     */
    private Long memberId;

    /**
     * 会员名称
     * */
    private String memberName;

    /**
     * 会员角色id
     */
    private Long roleId;

    /**
     * 会员角色名称
     * */
    private String roleName;

    /**
     * 商品id
     */
    private Long productId;

    /**
     * skuId
     */
    private Long skuId;

    /**
     * 商品价格
     * */
    private BigDecimal price;

    /**
     * 预售价格
     * */
    private BigDecimal preSelPrice;

    /**
     * 直降价格/起始价格
     * */
    private BigDecimal plummetPrice;

    /**
     * 活动价格/团购价格/秒杀价格/单位定金/砍价底价
     * */
    private BigDecimal activityPrice;

    /**
     * 定金抵扣单价
     * */
    private BigDecimal deductionPrice;

    /**
     * 折扣（如85折，输入85，9折输入90, 最多保留一位小数，要求大于0且小于100）
     */
    private BigDecimal discount;

    /**
     * 个人限购数量
     */
    private Integer restrictNum;

    /**
     * 活动限购总数量
     * */
    private Integer restrictTotalNum;
}
